package com.xbongbong.paas.pojo.dto;

import com.xbongbong.paas.pojo.FormTitlePoJo;
import com.xbongbong.paas.pojo.SummaryDataPoJo;
import com.xbongbong.paas.pojo.SwitchsPojo;
import com.xbongbong.paas.pojo.vo.FormEntityEditGetVO;
import com.xbongbong.paas.field.LinkListPojo;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * @author: wufeng
 * @date: 2018/8/14 14:54
 * @desrcption: 表单返回数据对象
 */
@Getter
@Setter
@ToString
public class FormEntityUpdateDTO implements Serializable {

    private static final long serialVersionUID = 7025693258050664130L;
    /**
     * 主键
     */
    private Long id;
    /**
     * 公司id
     */
    private String corpid;
    /**
     * 应用id
     */
    private Long appId;
    /**
     * 流程表单名称
     */
    private String name;
    /**
     * 是否是saas标记
     */
    private Integer saasMark;
    /**
     * saas业务类型
     */
    private Integer businessType;

    /**
     * 是否流程表单，1是，0否
     */
    private Integer isProcessForm;
    /**
     * 表单验证规则
     */
    private String verifyRule;
    /**
     * 不可见字段赋值，1 保持原值，2 空值，3 始终重新计算
     */
    private Integer disableFieldAssign;
    /**
     * 前端缓存，1 启用，0 禁用
     */
    private Integer frontCache;
    /**
     * 数据标题类型，1第一个字段，2自定义标题
     */
    private Integer titleType;
    /**
     * 自定义标题
     */
    private List<FormTitlePoJo> customTitle;
    /**
     * 自定义摘要，具体指定格式, 用于手机端列表页显示
     */
    private List<SummaryDataPoJo> summary;

    /**
     * 自定义标签
     */
    private List<SummaryDataPoJo> labels;

    /**
     * 关联列表设置
     */
    private List<LinkListPojo> associationList;


    /**
     * 业务规则
     */
    private String businessRules;

    /**
     * 费用
     */
    private List<Long> surcharge;
    /**
     * 是否启用
     */
    private Integer enable;
    /**
     * 是否删除
     */
    private Integer del;
    /**
     * 开启关闭业绩分配
     */
    private Integer openDistribution;
    /**
     * 表单级设置的开关
     */
    private List<SwitchsPojo> switchs;
    /**
     * 表单的单位列宽
     */
    private String fieldPosition;

    private Integer distributorMark;
    private FormEntityEditGetVO editPermissions;

    /**
     *  0：字段不可见时，不参与公式计算 / 1：字段不可见时，始终参数计算
     */
    private Integer assignmentRules;

    public FormEntityUpdateDTO(){
        summary = new ArrayList<>();
        labels = new ArrayList<>();
        customTitle = new ArrayList<>();
        surcharge = new ArrayList<>();
        openDistribution = 0;
    }

}
